package fms.thread;

import fms.controller.ContrastStatisticsController;
import org.apache.log4j.Logger;

/**
 * Created with IntelliJ IDEA.
 * Desc: 本线程用于SKYFMS与JETPLAN风温数据的对比统计，
 *       即，将每一份已入库的飞行计划中的每个高度层中的各个航路点数据，与SKYFMS利用Grib2计算出来的数据进行对比，
 *       把对比结果生成一个EXCEL文档
 */
public class ContrastStatisticsThread implements Runnable {
    private static Logger logger = Logger.getLogger(ContrastStatisticsThread.class);

    private String excelOuputPath;


    public ContrastStatisticsThread(String excelOuputPath) {
        this.excelOuputPath = excelOuputPath;
    }

    @Override
    public void run() {
        dealWindInfoContrastStatistics(excelOuputPath);
    }

    /**
     *
     */
    private static void dealWindInfoContrastStatistics(String excelOuputPath) {
        try {
            ContrastStatisticsController csControl = new ContrastStatisticsController(excelOuputPath);
            csControl.startContrastStatistics();
        } catch (Exception e) {
            logger.error(e.toString());
        }

//
        // grib2数据较大，边解析边多线程入库，航班飞行计划是先解析数据再入库
//        boolean parseStatus = planParseControl.parseDataSource();
//        if (parseStatus) {
//            logger.info("Grib2数据" + childFile.getName() + "解析入库完毕");
//            //System.gc();
//            //配置是否备份解析成功的文件
//            String isBackupSuccess = ConfUtil.props.getProperty("isBackupSuccess");
//            if ("true".equalsIgnoreCase(isBackupSuccess)) {
//                if (!FileUtil.MoveFile(childFile, backupGrib2SuccessDir)) {
//                    // 如果文件移动失败（eg：文件名重复，则直接删除）
//                    if (!childFile.delete()) {
//                        logger.error(childFile.getAbsolutePath() + "解析成功的Grib2文件删除失败，本服务停止");
//                        return;
//                    } else {
//                        logger.error("本次Grib2数据文件解析成功，文件" + fileNameList[i] + "无法移动，已删除");
//                    }
//                } else {
//                    logger.error("本次Grib2数据文件解析成功，文件" + fileNameList[i] + "已被剪切至:" + backupGrib2SuccessDir);
//                }
//            } else {
//                if (!childFile.delete()) {
//                    logger.error(childFile.getAbsolutePath() + "文件删除失败，本服务停止");
//                    return;
//                }
//            }
//            logger.info("Grib2数据" + childFile.getName() + "入库结束，文件已删除");
//        } else {
//            // 如果文件移动失败（eg：文件名重复，则直接删除）
//            if (!FileUtil.MoveFile(childFile, backupDirPath)) {
//                if (!childFile.delete()) {
//                    logger.error(childFile.getAbsolutePath() + "无法解析的Grib2文件删除失败，本服务停止");
//                    return;
//                } else {
//                    logger.error("本次Grib2数据文件无法解析，文件" + fileNameList[i] + "无法移动，已删除");
//                }
//            } else {
//                logger.error("本次Grib2数据文件无法解析，文件" + fileNameList[i] + "已被剪切至:" + backupDirPath);
//            }
//        }
    }


}
